import html2Canvas from 'html2canvas'
import JsPDF from 'jspdf'
import { uploadPdf } from "@/api"
function downloadPDF(ele, pdfName, inspectId) {
  setTimeout(() => {
    var opts = {
      useCORS: true, // 允许加载跨域的图片
      allowTaint: false,
      taintTest: true, // 检测每张图片都已经加载完成
      logging: true,
      backgroundColor: 'white'
    }
    html2Canvas(document.querySelector(ele), opts).then(function (canvas) {
      let contentWidth = canvas.width
      let contentHeight = canvas.height
      let pageHeight = contentWidth / 592.28 * 841.89
      let leftHeight = contentHeight
      let position = 0
      let imgWidth = 595.28
      let imgHeight = 592.28 / contentWidth * contentHeight

      let pageData = canvas.toDataURL('image/jpeg', 2)   //第二个参数表示清晰度
      let PDF = new JsPDF('', 'pt', 'a4')
      if (leftHeight < pageHeight) {
        PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight)
      } else {
        while (leftHeight > 0) {
          PDF.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight)
          leftHeight -= pageHeight
          position -= 841.89
          if (leftHeight > 0) {
            PDF.addPage()
          }
        }
      }
      // PDF.save(pdfName + '.pdf')

      var pdfData = PDF.output('datauristring')//获取base64Pdf
      const base64Url = pdfData.split('base64,')[1]
      console.log("🚀 ~ file: htmlToPdf.js ~ line 40 ~ pdfData", pdfData)
      uploadPdf(base64Url, inspectId).then(({ message, success }) => {
        this.$message({
          type: success ? 'success' : 'error',
          message
        })
      })
        .catch((err) => {
          console.log(
            "🚀 ~ file: sign.vue ~ line 305 ~ getInitData ~ err",
            err
          )
        })
      // v1/plugins/met/lpInspect/uploadPdf
      //   let file = base64ConvertFile(pdfData, "heyidan")
      //   // var base64 = pdfData.substring(28)
      //   console.log("🚀 ~ file: htmlToPdf.js ~ line 41 ~ file", file)
      //   // console.log("🚀 ~ file: htmlToPdf.js ~ line 40 ~ pdfData", pdfData)
      //   // resolve(pdfData)
      //   let fileType = file.name.split(".")
      //   fileType = fileType[fileType.length - 1]
      //   let param = new FormData() //创建form对象
      //   param.append("uploadfile", file, file.name) //通过append向form对象添加数据
      //   param.append("name", "uploadfile") //添加form表单中其他数据
      //   param.append("filename", `${guid()}.${fileType}`) //添加form表单中其他数据
      //   //console.log(param.get('tweetPic')); //FormData私有类对象，访问不到，可以通过get判断值是否传进去
      //   let config = {
      //     headers: { "Content-Type": "multipart/form-data" }
      //   } //添加请求头
      //   this.$http
      //     .post("mp/file/vt/upload.do", param, config)
      //     .then(res => {
      //       console.log(res)
      //       if (res.result == 1) {
      //         // this.setImg(res.path[0][0].split("|")[1], state);
      //         //对返回的数据进行处理
      //         let params = {}
      //         params.attUrl = res.path[0][0].split("|")[1]
      //         params.fileName = res.path[0][0].split("|")[0]
      //       }
      //     })
      // }
      // )
    })
  }, 1000)
}

//base64转file文件
// function base64ConvertFile(urlData, filename) { // 64转file
//   // if (typeof urlData != 'string') {
//   //   this.$toast("urlData不是字符串")
//   //   return;
//   // }
//   var arr = urlData.split(',')
//   var type = arr[0].match(/:(.*?);/)[1]
//   var fileExt = type.split('/')[1]
//   var bstr = atob(arr[1])
//   var n = bstr.length
//   var u8arr = new Uint8Array(n)
//   while (n--) {
//     u8arr[n] = bstr.charCodeAt(n)
//   }
//   return new File([u8arr], filename + "." + fileExt, {
//     type: type
//   })
// }

// function guid() {
//   return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (
//     c
//   ) {
//     var r = (Math.random() * 16) | 0,
//       v = c == "x" ? r : (r & 0x3) | 0x8
//     return v.toString(16)
//   })
// }

export default {
  downloadPDF
}